home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1998 November / Freeware November 1998.img / dist / fw_UDELxntp.idb / usr / freeware / src / xntp-3.4o-export / lib / tstotv.c.z / tstotv.c
C/C++ Source or Header  |  1998-01-21  |  6KB  |  136 lines

  1. /*
  2.  * tstotv - tables for converting from NTP time stamps to struct timeval
  3.  */
  4.  
  5. #include "ntp_types.h"
  6.  
  7. /*
  8.  * Tables to convert from a time stamp fraction to usecs.  Note that
  9.  * the units of these tables are actually (usec<<3).  We carry three
  10.  * guard bits so that the result can be properly truncated (or rounded)
  11.  * to be correct to the least significant bit.
  12.  *
  13.  * These tables are rounded.
  14.  */
  15.  
  16. long tstoushi[256] = {
  17.     0x000000, 0x007a12, 0x00f424, 0x016e36,
  18.     0x01e848, 0x02625a, 0x02dc6c, 0x03567e,
  19.     0x03d090, 0x044aa2, 0x04c4b4, 0x053ec6,
  20.     0x05b8d8, 0x0632ea, 0x06acfc, 0x07270e,
  21.     0x07a120, 0x081b32, 0x089544, 0x090f56,
  22.     0x098968, 0x0a037a, 0x0a7d8c, 0x0af79e,
  23.     0x0b71b0, 0x0bebc2, 0x0c65d4, 0x0cdfe6,
  24.     0x0d59f8, 0x0dd40a, 0x0e4e1c, 0x0ec82e,
  25.     0x0f4240, 0x0fbc52, 0x103664, 0x10b076,
  26.     0x112a88, 0x11a49a, 0x121eac, 0x1298be,
  27.     0x1312d0, 0x138ce2, 0x1406f4, 0x148106,
  28.     0x14fb18, 0x15752a, 0x15ef3c, 0x16694e,
  29.     0x16e360, 0x175d72, 0x17d784, 0x185196,
  30.     0x18cba8, 0x1945ba, 0x19bfcc, 0x1a39de,
  31.     0x1ab3f0, 0x1b2e02, 0x1ba814, 0x1c2226,
  32.     0x1c9c38, 0x1d164a, 0x1d905c, 0x1e0a6e,
  33.     0x1e8480, 0x1efe92, 0x1f78a4, 0x1ff2b6,
  34.     0x206cc8, 0x20e6da, 0x2160ec, 0x21dafe,
  35.     0x225510, 0x22cf22, 0x234934, 0x23c346,
  36.     0x243d58, 0x24b76a, 0x25317c, 0x25ab8e,
  37.     0x2625a0, 0x269fb2, 0x2719c4, 0x2793d6,
  38.     0x280de8, 0x2887fa, 0x29020c, 0x297c1e,
  39.     0x29f630, 0x2a7042, 0x2aea54, 0x2b6466,
  40.     0x2bde78, 0x2c588a, 0x2cd29c, 0x2d4cae,
  41.     0x2dc6c0, 0x2e40d2, 0x2ebae4, 0x2f34f6,
  42.     0x2faf08, 0x30291a, 0x30a32c, 0x311d3e,
  43.     0x319750, 0x321162, 0x328b74, 0x330586,
  44.     0x337f98, 0x33f9aa, 0x3473bc, 0x34edce,
  45.     0x3567e0, 0x35e1f2, 0x365c04, 0x36d616,
  46.     0x375028, 0x37ca3a, 0x38444c, 0x38be5e,
  47.     0x393870, 0x39b282, 0x3a2c94, 0x3aa6a6,
  48.     0x3b20b8, 0x3b9aca, 0x3c14dc, 0x3c8eee,
  49.     0x3d0900, 0x3d8312, 0x3dfd24, 0x3e7736,
  50.     0x3ef148, 0x3f6b5a, 0x3fe56c, 0x405f7e,
  51.     0x40d990, 0x4153a2, 0x41cdb4, 0x4247c6,
  52.     0x42c1d8, 0x433bea, 0x43b5fc, 0x44300e,
  53.     0x44aa20, 0x452432, 0x459e44, 0x461856,
  54.     0x469268, 0x470c7a, 0x47868c, 0x48009e,
  55.     0x487ab0, 0x48f4c2, 0x496ed4, 0x49e8e6,
  56.     0x4a62f8, 0x4add0a, 0x4b571c, 0x4bd12e,
  57.     0x4c4b40, 0x4cc552, 0x4d3f64, 0x4db976,
  58.     0x4e3388, 0x4ead9a, 0x4f27ac, 0x4fa1be,
  59.     0x501bd0, 0x5095e2, 0x510ff4, 0x518a06,
  60.     0x520418, 0x527e2a, 0x52f83c, 0x53724e,
  61.     0x53ec60, 0x546672, 0x54e084, 0x555a96,
  62.     0x55d4a8, 0x564eba, 0x56c8cc, 0x5742de,
  63.     0x57bcf0, 0x583702, 0x58b114, 0x592b26,
  64.     0x59a538, 0x5a1f4a, 0x5a995c, 0x5b136e,
  65.     0x5b8d80, 0x5c0792, 0x5c81a4, 0x5cfbb6,
  66.     0x5d75c8, 0x5defda, 0x5e69ec, 0x5ee3fe,
  67.     0x5f5e10, 0x5fd822, 0x605234, 0x60cc46,
  68.     0x614658, 0x61c06a, 0x623a7c, 0x62b48e,
  69.     0x632ea0, 0x63a8b2, 0x6422c4, 0x649cd6,
  70.     0x6516e8, 0x6590fa, 0x660b0c, 0x66851e,
  71.     0x66ff30, 0x677942, 0x67f354, 0x686d66,
  72.     0x68e778, 0x69618a, 0x69db9c, 0x6a55ae,
  73.     0x6acfc0, 0x6b49d2, 0x6bc3e4, 0x6c3df6,
  74.     0x6cb808, 0x6d321a, 0x6dac2c, 0x6e263e,
  75.     0x6ea050, 0x6f1a62, 0x6f9474, 0x700e86,
  76.     0x708898, 0x7102aa, 0x717cbc, 0x71f6ce,
  77.     0x7270e0, 0x72eaf2, 0x736504, 0x73df16,
  78.     0x745928, 0x74d33a, 0x754d4c, 0x75c75e,
  79.     0x764170, 0x76bb82, 0x773594, 0x77afa6,
  80.     0x7829b8, 0x78a3ca, 0x791ddc, 0x7997ee
  81. };
  82.  
  83. long tstousmid[256] = {
  84.     0x0000, 0x007a, 0x00f4, 0x016e, 0x01e8, 0x0262, 0x02dc, 0x0356,
  85.     0x03d1, 0x044b, 0x04c5, 0x053f, 0x05b9, 0x0633, 0x06ad, 0x0727,
  86.     0x07a1, 0x081b, 0x0895, 0x090f, 0x0989, 0x0a03, 0x0a7e, 0x0af8,
  87.     0x0b72, 0x0bec, 0x0c66, 0x0ce0, 0x0d5a, 0x0dd4, 0x0e4e, 0x0ec8,
  88.     0x0f42, 0x0fbc, 0x1036, 0x10b0, 0x112b, 0x11a5, 0x121f, 0x1299,
  89.     0x1313, 0x138d, 0x1407, 0x1481, 0x14fb, 0x1575, 0x15ef, 0x1669,
  90.     0x16e3, 0x175d, 0x17d8, 0x1852, 0x18cc, 0x1946, 0x19c0, 0x1a3a,
  91.     0x1ab4, 0x1b2e, 0x1ba8, 0x1c22, 0x1c9c, 0x1d16, 0x1d90, 0x1e0a,
  92.     0x1e84, 0x1eff, 0x1f79, 0x1ff3, 0x206d, 0x20e7, 0x2161, 0x21db,
  93.     0x2255, 0x22cf, 0x2349, 0x23c3, 0x243d, 0x24b7, 0x2531, 0x25ac,
  94.     0x2626, 0x26a0, 0x271a, 0x2794, 0x280e, 0x2888, 0x2902, 0x297c,
  95.     0x29f6, 0x2a70, 0x2aea, 0x2b64, 0x2bde, 0x2c59, 0x2cd3, 0x2d4d,
  96.     0x2dc7, 0x2e41, 0x2ebb, 0x2f35, 0x2faf, 0x3029, 0x30a3, 0x311d,
  97.     0x3197, 0x3211, 0x328b, 0x3306, 0x3380, 0x33fa, 0x3474, 0x34ee,
  98.     0x3568, 0x35e2, 0x365c, 0x36d6, 0x3750, 0x37ca, 0x3844, 0x38be,
  99.     0x3938, 0x39b3, 0x3a2d, 0x3aa7, 0x3b21, 0x3b9b, 0x3c15, 0x3c8f,
  100.     0x3d09, 0x3d83, 0x3dfd, 0x3e77, 0x3ef1, 0x3f6b, 0x3fe5, 0x405f,
  101.     0x40da, 0x4154, 0x41ce, 0x4248, 0x42c2, 0x433c, 0x43b6, 0x4430,
  102.     0x44aa, 0x4524, 0x459e, 0x4618, 0x4692, 0x470c, 0x4787, 0x4801,
  103.     0x487b, 0x48f5, 0x496f, 0x49e9, 0x4a63, 0x4add, 0x4b57, 0x4bd1,
  104.     0x4c4b, 0x4cc5, 0x4d3f, 0x4db9, 0x4e34, 0x4eae, 0x4f28, 0x4fa2,
  105.     0x501c, 0x5096, 0x5110, 0x518a, 0x5204, 0x527e, 0x52f8, 0x5372,
  106.     0x53ec, 0x5466, 0x54e1, 0x555b, 0x55d5, 0x564f, 0x56c9, 0x5743,
  107.     0x57bd, 0x5837, 0x58b1, 0x592b, 0x59a5, 0x5a1f, 0x5a99, 0x5b13,
  108.     0x5b8d, 0x5c08, 0x5c82, 0x5cfc, 0x5d76, 0x5df0, 0x5e6a, 0x5ee4,
  109.     0x5f5e, 0x5fd8, 0x6052, 0x60cc, 0x6146, 0x61c0, 0x623a, 0x62b5,
  110.     0x632f, 0x63a9, 0x6423, 0x649d, 0x6517, 0x6591, 0x660b, 0x6685,
  111.     0x66ff, 0x6779, 0x67f3, 0x686d, 0x68e7, 0x6962, 0x69dc, 0x6a56,
  112.     0x6ad0, 0x6b4a, 0x6bc4, 0x6c3e, 0x6cb8, 0x6d32, 0x6dac, 0x6e26,
  113.     0x6ea0, 0x6f1a, 0x6f94, 0x700f, 0x7089, 0x7103, 0x717d, 0x71f7,
  114.     0x7271, 0x72eb, 0x7365, 0x73df, 0x7459, 0x74d3, 0x754d, 0x75c7,
  115.     0x7641, 0x76bc, 0x7736, 0x77b0, 0x782a, 0x78a4, 0x791e, 0x7998
  116. };
  117.  
  118. long tstouslo[128] = {
  119.     0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
  120.     0x08, 0x09, 0x0a, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e,
  121.     0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16,
  122.     0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e,
  123.     0x1f, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25,
  124.     0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d,
  125.     0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x33, 0x34,
  126.     0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c,
  127.     0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44,
  128.     0x45, 0x46, 0x47, 0x48, 0x48, 0x49, 0x4a, 0x4b,
  129.     0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53,
  130.     0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b,
  131.     0x5c, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62,
  132.     0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a,
  133.     0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x71,
  134.     0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79
  135. };
  136.